package com.carbonspark.auth.common.entity;

import lombok.Data;

import java.io.Serializable;

/**
 * 分页请求实体
 * 用于封装客户端传递的分页请求参数，包括当前页码和每页记录数。
 *
 * @author: ChickenWing
 * @date: 2023/10/5
 */
@Data
public class PageInfo implements Serializable {

    // 当前页码，默认为1
    private Integer pageNo = 1;

    // 每页记录数，默认为20
    private Integer pageSize = 20;

    /**
     * 获取当前页码
     * 如果页码为空或小于1，则返回默认值1。
     *
     * @return 当前页码
     */
    public Integer getPageNo() {
        if (pageNo == null || pageNo < 1) {
            return 1;
        }
        return pageNo;
    }

    /**
     * 获取每页记录数
     * 如果每页记录数为空、小于1或超过最大值（Integer.MAX_VALUE），则返回默认值20。
     *
     * @return 每页记录数
     */
    public Integer getPageSize() {
        if (pageSize == null || pageSize < 1 || pageSize > Integer.MAX_VALUE) {
            return 20;
        }
        return pageSize;
    }
}